More and more information is being shared and transmitted over computer networks, and more and more two-way communication is taking place using computer networks. With the growth and ubiquity of the Internet, more and more people are becoming familiar with computer networks and desire to conduct more and more of their daily affairs using computer networks, especially the Internet. With the increasing popularity of the Internet and other networks, there is a growing demand for increased speed and quality of service. The higher the quality of a particular product or service that can be provided over the Internet, the greater will be the demand for that product or service.
Smaller and more uniform computer networks can provide high-quality services without excessive difficulty, since greater control can be maintained over the network servers and clients. In such an environment, strict standards and protocols can be dictated and maintained. The Internet, on the other hand, must serve a tremendous variety of users, all over the world, and must provide means for transferring data over paths which may be extremely circuitous, with components having differing characteristics and bandwidths. One application which is stimulating considerable interest and which is growing rapidly in popularity, but which is still subject to significant obstacles, is Internet telephony or in other words, real-time voice communication over the Internet. This application has the promise of introducing the Internet into the daily lives of large numbers of people in a substantial way. The promise is of providing a low-cost substitute for a long distance telephone service with which people are familiar, and which they use frequently, but which, because of its cost, they are constrained to use much less frequently than they might otherwise choose to if the costs were significantly lowered while still providing comparable service. Internet telephony holds forth the promise of allowing people to communicate with friends and loved ones all over the world for the cost of an making an Internet connection. In the present state of the art, there remain, however, significant obstacles to high-quality Internet telephony. These obstacles arise in part because of the protocols used by the Internet for data transmission. For real time voice traffic, latency must be kept to a minimum or the delays incurred will significantly interfere with the quality of the voice conversation. For limited-bandwidth transmission channels such as modems, transmission control protocol ("TCP"), through the use of Van Jacobsen compression, can accommodate small packets without the excessive overhead caused by a large header size. Such compression algorithms do not presently exist for user datagram protocol ("UDP").
If small packets are used for UDP transmission, the available bandwidth provided by today's modems may not be enough to accommodate them, given their large overhead. However, if large UDP packets are used for telephony, voice quality is degraded because a significant latency results. Such latency may arise because a wait is necessary to allow a large UDP packet to fill with data before it is dispatched.
On the other hand, if TCP is used to provide transmission all the way from the initial sender, over the Internet, and to the remote receiver, latencies may be too great for telephony because of the delays occasioned by detecting and resending lost packets. When measured against the quality of standard telephone service, an acceptable quality of Internet telephony service is not yet available. Thus, there exists a need in the art for methods and apparatus to provide Internet telephony data packet transmission which can accommodate a low-bandwidth connection between a user and a local host, but which can provide high-quality data transmission with low latency.